// 2. 类型推断

let d = -99 //TypeScript会推断出变量d的类型是数字
// d = false //警告：不能将类型“boolean”分配给类型“number”

/*
3. 类型总览
    JavaScript 中的数据类型：
    string 、 number 、 boolean 、 null 、 undefined 、 bigint 、 symbol 、 object
    备注：其中 object 包含： Array 、 Function 、 Date ......

    TypeScript 中的数据类型：
    1. 以上所有
    2. 四个新类型： void 、 never 、 unknown 、 any 、 enum 、 tuple
    3. ⾃定义类型： type 、 interface

    注意点： JS 中的这三个构造函数： Number 、 String 、 Boolean ，他们只⽤于包装对象，
    正常开发时，很少去使⽤他们，在 TS 中也是同理。
* */

let n = 56
let y = n.toFixed(2)
console.log(n,typeof(n))
console.log(y,typeof(y))
/*
当执⾏n.toFixed(2) ，底层做了这⼏件事：
 1.let temp = new Number(56)
 2.value = temp.toFixed(2)
 3.删除value
 4.返回value
*/

/*
类型总览：
类型      描述          举例
number 任意数字         1 , -33 , 2.5
string 任意字符串        'hello' , 'ok' , '你 好'
boolean 布尔值             true 或 false true 、 false
字⾯量 值只能是字⾯量值    值本身
any     任意类型        1、 'hello' 、 true .... ..
unknown 类型安全的       any 1 、 'hello' 、 true .... ..
never 不能是任何值        ⽆值
void 空 或 undefined      空 或 undefined
object 任意的 JS 对象            {name:'张三'}
tuple 元素，TS 新增类型，固定⻓度数组    [4,5]
enum 枚举，TS 中新增类型               enum{A, B}
* */